package com.mallcloud.mall.app.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mallcloud.mall.mall.api.entity.dto.*;
import com.mallcloud.mall.mall.api.entity.vo.MallPointsCouponVO;

import java.util.List;

/**
 * 积分券
 */
public interface AppPointsCouponService {

    /**
     * 可买券分页
     */
    IPage<MallPointsCouponVO> payCouponPage(Page<MallPointsCouponVO> page);

    /**
     * 可领券分页
     */
    IPage<MallPointsCouponVO> freeCouponPage(Page<MallPointsCouponVO> page);

    /**
     * 可兑换券分页
     */
    IPage<MallPointsCouponVO> redeemCouponPage(Page<MallPointsCouponVO> page);

	MallPointsCouponVO getInfo(MallPointsCouponVO dto);

    /**
     * 券-积分兑换
     */
    void proRedeemCoupon(ProRedeemCoupon entity);

    /**
     * 券-领取
     */
	void proGetCoupon(ProGetCoupon entity);

    /**
     * 券-买取
     */
	List<ProPayCouponInfo> proPayCoupon(ProPayCoupon entity);

	/**
	 * 券-可买取检查
	 * @param entity
	 * @return
	 */
	String proCheckPayCoupon(ProPayCoupon entity);

    /**
     * 券-买取回滚
     */
	void proPayRollBackCoupon(ProPayRollBackCoupon entity);

    /**
     * 券-转赠
     * @param entity
     * @return
     */
     void proGivenCoupon(ProGivenCoupon entity);

}
